import time

f = open("D:\\python文件读取.txt", 'r', encoding="UTF-8")
print(f"读取的文件类型为：{type(f)}")
print(f"前10个字为：{f.read(10)}")
print(f"剩余的结果为：{f.read()}")

# read()存在指针类操作，读取一次后，无法再次读取
print(f"一次读取所有结果：{f.readlines()}")
f.close()
print("--------------------------------------------")

f = open("D:\\python文件读取.txt", 'r', encoding="UTF-8")
readlines = f.readlines()
print(f"readlines读取结果类型为：{type(readlines)}, 一次读取所有结果：{readlines}")
f.close()

f = open("D:\\python文件读取.txt", 'r', encoding="UTF-8")
# 一行一行读取内容
print(f"第一行内容：{f.readline()}")
print(f"第二行内容：{f.readline()}")
print(f"第三行内容：{f.readline()}")
f.close()


# 使用for循环，遍历文件内容
f = open("D:\\python文件读取.txt", 'r', encoding="UTF-8")
for content in f:
    print(f"循环遍历文本内容：{content}")

f.close()

# 直接调用python内置函数，进行休眠
# time.sleep(50000)

# 自动关闭文件的方法 将内容读取进f中，通过for循环一行一行取出
with open("D:\\python文件读取.txt", 'r', encoding="UTF-8") as f:
    for content in f:
        print(content)

"""
练习，读取文件，并统计阿里巴巴出现的次数
"""
# 方式一
f = open("D:\\python文件读取.txt", 'r', encoding="UTF-8")
count = f.read().count("阿里巴巴")
print(f"阿里巴巴出现的次数为：{count}")
f.close()


"""
文件的写入
"""
f = open("D:\\python文件写入.txt", 'w', encoding="UTF-8")
f.write("使用python写入数据\n")
f.write("使用python再次写入")
f.flush();
f = open("D:\\python文件写入.txt", 'r', encoding="UTF-8")
print(f"写入后文件内容为：{f.read()}")

"""
对同一个文件，再次写入，会将之前的内容覆盖
"""
f = open("D:\\python文件写入.txt", 'w', encoding="UTF-8")
f.write("使用python写入数据2\n")
f.write("使用python再次写入2")
f.flush();
f = open("D:\\python文件写入.txt", 'r', encoding="UTF-8")
print(f"写入后文件内容为：{f.read()}")

"""
文件的追加
"""
f = open("D:\\python文件写入.txt", 'a', encoding="UTF-8")
f.write("追加一行内容")
f.write("再追加一行内容")
f.flush()
f = open("D:\\python文件写入.txt", 'r', encoding="UTF-8")
print(f"写入后文件内容为：{f.read()}")

